package com.mz.emergency.domain;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.SuperBuilder;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 入院护理评估对象 admission_assessment
 *
 * @author zzq
 * @date 2025-05-07
 */

@Data
@SuperBuilder
@ToString
@NoArgsConstructor
@AllArgsConstructor
@Schema(name = "AdmissionAssessment", description = "入院护理评估对象")
public class AdmissionAssessment {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(type = IdType.INPUT)
    @Schema(description = "主键")
    private String id;

    /**
     * 诊断id
     */
    @Schema(description = "诊断id")
    @NotEmpty(message = "诊断id不能为空")
    private String diagnosisId;

    /**
     * 生命体征体温
     */
    @Schema(description = "生命体征体温")
    private String signTemperature;

    /**
     * 生命体征体温文本
     */
    @Schema(description = "生命体征体温文本")
    private BigDecimal signTemperatureText;

    /**
     * 生命体征心率
     */
    @Schema(description = "生命体征心率")
    private String signHeartRate;

    /**
     * 生命体征心率文本
     */
    @Schema(description = "生命体征心率文本")
    private Integer signHeartRateText;

    /**
     * 生命体征呼吸
     */
    @Schema(description = "生命体征呼吸")
    private String signBreath;

    /**
     * 生命体征呼吸文本
     */
    @Schema(description = "生命体征呼吸文本")
    private Integer signBreathText;

    /**
     * 生命体征血压
     */
    @Schema(description = "生命体征血压")
    private String signPressure;

    /**
     * 生命体征血压收缩压文本
     */
    @Schema(description = "生命体征血压收缩压文本")
    private Integer signPressureContractText;

    /**
     * 生命体征血压舒张压文本
     */
    @Schema(description = "生命体征血压舒张压文本")
    private Integer signPressureDiastoleText;

    /**
     * 生命体征血氧
     */
    @Schema(description = "生命体征血氧")
    private String signOxygen;

    /**
     * 生命体征血氧文本
     */
    @Schema(description = "生命体征血氧文本")
    private Integer sign_oxygenText;

    /**
     * 生命体征脉搏
     */
    @Schema(description = "生命体征脉搏")
    private String signPulse;

    /**
     * 生命体征脉搏文本
     */
    @Schema(description = "生命体征脉搏文本")
    private Integer signPulseText;

    /**
     * 生命体征血糖
     */
    @Schema(description = "生命体征血糖")
    private String signGlucose;

    /**
     * 生命体征血糖文本
     */
    @Schema(description = "生命体征血糖文本")
    private BigDecimal signGlucoseText;

    /**
     * 初步评估气道
     */
    @Schema(description = "初步评估气道")
    private String assessAirway;

    /**
     * 初步评估气道文本
     */
    @Schema(description = "初步评估气道文本")
    private String assessAirwayText;

    /**
     * 初步评估呼吸
     */
    @Schema(description = "初步评估呼吸")
    private String assessBreath;

    /**
     * 初步评估呼吸文本
     */
    @Schema(description = "初步评估呼吸文本")
    private String assessBreathText;

    /**
     * 初步评估循环
     */
    @Schema(description = "初步评估循环")
    private String assessCycle;

    /**
     * 初步评估心率
     */
    @Schema(description = "初步评估心率")
    private String assessHeartRate;

    /**
     * 初步评估心律
     */
    @Schema(description = "初步评估心律")
    private String assessHeartRhythm;

    /**
     * 初步评估心律文本
     */
    @Schema(description = "初步评估心律文本")
    private String assessHeartRhythmText;

    /**
     * 初步评估出血
     */
    @Schema(description = "初步评估出血")
    private String assessBlood;

    /**
     * 初步评估出血文本
     */
    @Schema(description = "初步评估出血文本")
    private String assessBloodText;

    /**
     * 初步评估神经系统
     */
    @Schema(description = "初步评估神经系统")
    private String assessNervous;

    /**
     * 初步评估对答切题
     */
    @Schema(description = "初步评估对答切题")
    private String assessAnswerPoint;

    /**
     * 初步评估对疼痛刺激反应
     */
    @Schema(description = "初步评估对疼痛刺激反应")
    private String assessStimulation;

    /**
     * 初步评估截瘫偏瘫
     */
    @Schema(description = "初步评估截瘫偏瘫")
    private String assessParalysis;

    /**
     * 初步评估瞳孔左直径
     */
    @Schema(description = "初步评估瞳孔左直径")
    private String assessPupilLeftDiameter;

    /**
     * 初步评估瞳孔左状态
     */
    @Schema(description = "初步评估瞳孔左状态")
    private String assessPupilLeftStatus;

    /**
     * 初步评估瞳孔左状态文本
     */
    @Schema(description = "初步评估瞳孔左状态文本")
    private String assessPupilLeftStatusText;

    /**
     * 初步评估瞳孔右直径
     */
    @Schema(description = "初步评估瞳孔右直径")
    private String assessPupilRightDiameter;

    /**
     * 初步评估瞳孔右状态
     */
    @Schema(description = "初步评估瞳孔右状态")
    private String assessPupilRightStatus;

    /**
     * 初步评估瞳孔右状态文本
     */
    @Schema(description = "初步评估瞳孔右状态文本")
    private String assessPupilRightStatusText;

    /**
     * 初步评估意识
     */
    @Schema(description = "初步评估意识")
    private String assessAwareness;

    /**
     * 初步评估意识文本
     */
    @Schema(description = "初步评估意识文本")
    private String assessAwarenessText;

    /**
     * 初步评估皮肤
     */
    @Schema(description = "初步评估皮肤")
    private String assessSkin;

    /**
     * 初步评估皮肤文本
     */
    @Schema(description = "初步评估皮肤文本")
    private String assessSkinText;

    /**
     * 初步评估皮肤范围
     */
    @Schema(description = "初步评估皮肤范围")
    private String assessSkinRange;

    /**
     * 初步评估胃肠道
     */
    @Schema(description = "初步评估胃肠道")
    private String assessGastTract;

    /**
     * 初步评估胃肠道文本
     */
    @Schema(description = "初步评估胃肠道文本")
    private String assessGastTractText;

    /**
     * 初步评估胸部
     */
    @Schema(description = "初步评估胸部")
    private String assessChest;

    /**
     * 初步评估胸部文本
     */
    @Schema(description = "初步评估胸部文本")
    private String assessChestText;

    /**
     * 初步评估腹部
     */
    @Schema(description = "初步评估腹部")
    private String assessAbdomen;

    /**
     * 初步评估腹部腹穿文本
     */
    @Schema(description = "初步评估腹部腹穿文本")
    private String assessAbdomenPunctureText;

    /**
     * 初步评估腹部其他文本
     */
    @Schema(description = "初步评估腹部其他文本")
    private String assessAbdomenOtherText;

    /**
     * 初步评估四肢活动
     */
    @Schema(description = "初步评估四肢活动")
    private String assessLimb;

    /**
     * 初步评估四肢活动文本
     */
    @Schema(description = "初步评估四肢活动文本")
    private String assessLimbText;

    /**
     * 初步评估疼痛
     */
    @Schema(description = "初步评估疼痛")
    private String assessPain;

    /**
     * 初步评估疼痛部位文本
     */
    @Schema(description = "初步评估疼痛部位文本")
    private String assessPainText;

    /**
     * 初步评估疾病史
     */
    @Schema(description = "初步评估疾病史")
    private String assessDisease;

    /**
     * 初步评估疾病史文本
     */
    @Schema(description = "初步评估疾病史文本")
    private String assessDiseaseText;

    /**
     * 初步评估手术史
     */
    @Schema(description = "初步评估手术史")
    private String assessSurgical;

    /**
     * 初步评估手术史文本
     */
    @Schema(description = "初步评估手术史文本")
    private String assessSurgicalText;

    /**
     * 初步评估过敏史
     */
    @Schema(description = "初步评估过敏史")
    private String assessAllergy;

    /**
     * 初步评估过敏史文本
     */
    @Schema(description = "初步评估过敏史文本")
    private String assessAllergyText;

    /**
     * 初步评估清醒程度
     */
    @Schema(description = "初步评估清醒程度")
    private String assessAwakeLevel;

    /**
     * 初步评估Braden评分
     */
    @Schema(description = "初步评估Braden评分")
    private Integer assessBradenScore;

    /**
     * 初步评估约翰霍普金斯评估
     */
    @Schema(description = "初步评估约翰霍普金斯评估")
    private Integer assessYhhpjsScore;

    /**
     * 初步评估GCS评分
     */
    @Schema(description = "初步评估GCS评分")
    private Integer assessGcsScore;

    /**
     * 初步评估NEWS评分
     */
    @Schema(description = "初步评估NEWS评分")
    private Integer assessNewsScore;

    /**
     * 初步评估疼痛评分
     */
    @Schema(description = "初步评估疼痛评分")
    private Integer assessPainScore;

    /**
     * 初步评估抢救措施(逗号拼接)
     */
    @Schema(description = "初步评估抢救措施(逗号拼接)")
    private String assessRescueMeasures;

    /**
     * 初步评估抢救措施备注
     */
    @Schema(description = "初步评估抢救措施备注")
    private String assessRescueMeasuresRemark;

    /**
     * 紧急联系人1姓名
     */
    @Schema(description = "紧急联系人1姓名")
    private String otherNameOne;

    /**
     * 紧急联系人1电话
     */
    @Schema(description = "紧急联系人1电话")
    private String otherPhoneOne;

    /**
     * 紧急联系人2姓名
     */
    @Schema(description = "紧急联系人2姓名")
    private String otherNameTwo;

    /**
     * 紧急联系人2电话
     */
    @Schema(description = "紧急联系人2电话")
    private String otherPhoneTwo;

    /**
     * 创建者
     */
    @Schema(description = "创建者")
    private String createBy;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    @Schema(description = "创建时间")
    private Date createTime;

    /**
     * 更新者
     */
    @Schema(description = "更新者")
    private String updateBy;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "更新时间")
    private Date updateTime;

    /**
     * 备注
     */
    @Schema(description = "备注")
    private String remark;
}
